package com.ruoyi.law_model.knowledge.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 存储知识库中的文档信息对象 knowledge_documents
 *
 * @author ruoyi
 * @date 2025-01-10
 */
public class KnowledgeDocuments extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键，自动递增 */
    private Long docId;

    /** 关联的知识库ID */
    @Excel(name = "关联的知识库ID")
    private Long klId;

    /** 文档的名字，不允许为空 */
    @Excel(name = "文档的名字，不允许为空")
    private String documentName;

    private String knowledgeName;

    /** 文档类型，文档、链接等 */
    @Excel(name = "文档类型，文档、链接等")
    private String documentType;

    /** 文档格式（例如：PDF、DOCX等） */
    @Excel(name = "文档格式", readConverterExp = "例=如：PDF、DOCX等")
    private String documentFormat;

    /** 文档存储路径 */
    @Excel(name = "文档存储路径")
    private String documentPath;

    /** 网页地址 */
    @Excel(name = "网页地址")
    private String webUrl;

    /** 文档解析状态，0：解析中，1：解析成功，2：解析失败 */
    @Excel(name = "文档解析状态，0：解析中，1：解析成功，2：解析失败")
    private String parsingStatus;

    /** 文档大小（以字节为单位） */
    @Excel(name = "文档大小", readConverterExp = "以=字节为单位")
    private Long documentSize;

    /** 文档字符数 */
    @Excel(name = "文档字符数")
    private Long characterCount;

    /** 创建时间，默认值为当前时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createdAt;

    /** 更新时间，默认值为当前时间，更新时自动更新 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date updatedAt;

    /** 创建人的ID */
    @Excel(name = "创建人的ID")
    private String createdBy;

    /** 更新人的ID */
    @Excel(name = "更新人的ID")
    private String updatedBy;

    private String content;

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public void setDocId(Long docId)
    {
        this.docId = docId;
    }

    public Long getDocId()
    {
        return docId;
    }
    public void setKlId(Long klId)
    {
        this.klId = klId;
    }

    public Long getKlId()
    {
        return klId;
    }
    public void setDocumentName(String documentName)
    {
        this.documentName = documentName;
    }

    public String getDocumentName()
    {
        return documentName;
    }
    public void setDocumentType(String documentType)
    {
        this.documentType = documentType;
    }

    public String getDocumentType()
    {
        return documentType;
    }
    public void setDocumentFormat(String documentFormat)
    {
        this.documentFormat = documentFormat;
    }

    public String getDocumentFormat()
    {
        return documentFormat;
    }
    public void setDocumentPath(String documentPath)
    {
        this.documentPath = documentPath;
    }

    public String getDocumentPath()
    {
        return documentPath;
    }
    public void setWebUrl(String webUrl)
    {
        this.webUrl = webUrl;
    }

    public String getWebUrl()
    {
        return webUrl;
    }
    public void setParsingStatus(String parsingStatus)
    {
        this.parsingStatus = parsingStatus;
    }

    public String getParsingStatus()
    {
        return parsingStatus;
    }
    public void setDocumentSize(Long documentSize)
    {
        this.documentSize = documentSize;
    }

    public Long getDocumentSize()
    {
        return documentSize;
    }
    public void setCharacterCount(Long characterCount)
    {
        this.characterCount = characterCount;
    }

    public Long getCharacterCount()
    {
        return characterCount;
    }
    public void setCreatedAt(Date createdAt)
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt()
    {
        return createdAt;
    }
    public void setUpdatedAt(Date updatedAt)
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt()
    {
        return updatedAt;
    }
    public void setCreatedBy(String createdBy)
    {
        this.createdBy = createdBy;
    }

    public String getCreatedBy()
    {
        return createdBy;
    }
    public void setUpdatedBy(String updatedBy)
    {
        this.updatedBy = updatedBy;
    }

    public String getUpdatedBy()
    {
        return updatedBy;
    }

    public String getKnowledgeName() {
        return knowledgeName;
    }

    public void setKnowledgeName(String knowledgeName) {
        this.knowledgeName = knowledgeName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("docId", getDocId())
            .append("klId", getKlId())
            .append("documentName", getDocumentName())
            .append("documentType", getDocumentType())
            .append("documentFormat", getDocumentFormat())
            .append("documentPath", getDocumentPath())
            .append("webUrl", getWebUrl())
            .append("parsingStatus", getParsingStatus())
            .append("documentSize", getDocumentSize())
            .append("characterCount", getCharacterCount())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .append("createdBy", getCreatedBy())
            .append("updatedBy", getUpdatedBy())
            .toString();
    }
}
